From 82f4fcec509798f65b681f9fea0f15380471cbc7 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 1 Nov 2017 12:24:28 +0000 Subject: [PATCH] ARM: dts: Add fake CTS signal to pi3-miniuart-bt The Pi 3B rev 1.3 and the Pi Zero W have flow control signals to the BT modem, which work well using UART0 (a.k.a. ttyAMA0). Because of this, the pin wired to the modem's CTS line has to be held low in order for it to transmit data. Unfortunately the mini-UART (or its driver) appears to have a flow control issue, causing hciattach to stall during modem initialisation. As a workaround (potentially short-term), configure GPIO 31 as an output driving low (the default state for an output). See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=138223&start=100#p1228339 Signed-off-by: Phil Elwell --- .../boot/dts/overlays/pi3-miniuart-bt-overlay.dts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts index 18f77453c38d..98381656945f 100644 --- a/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts +++ b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts @@ -31,7 +31,7 @@ target = <&uart1>; __overlay__ { pinctrl-names = "default"; - pinctrl-0 = <&uart1_pins &bt_pins>; + pinctrl-0 = <&uart1_pins &bt_pins &fake_bt_cts>; status = "okay"; }; }; @@ -55,6 +55,16 @@ }; fragment@4 { + target = <&gpio>; + __overlay__ { + fake_bt_cts: fake_bt_cts { + brcm,pins = <31>; + brcm,function = <1>; /* output */ + }; + }; + }; + + fragment@5 { target-path = "/aliases"; __overlay__ { serial0 = "/soc/serial@7e201000"; -- 2.30.2